iT邦幫忙

2024 iThome 鐵人賽

DAY 4
0
佛心分享-SideProject30

從零開始打造超邊緣AI應用系列 第 4

Day 4 - STM32 是一個好吃的東西嗎?

  • 分享至 

  • xImage
  •  

STM32 Series

昨天介紹到了 STM32 的強大生態系,而今天要先簡單介紹 STM32 不同的產品線,以及到底在這個專案會選擇使用什麼作為開發目標晶片。

STM32 系列基於不同的 Cortex-M 核心有以下不同產品線:

  • STM32F Series: 最常見的 MCU 系列,通常最容易買到且使用的就是 STM32F103 系列的開發版。
  • STM32L Series: 適用於超低功耗應用的系列
  • STM32H Series: 高效能應用的系列
  • STM32U Series: 最新的低功號應用系列

更詳細可以參考下圖(出自 STMicroelectronics 官網)
STM32 Series

STM32 U585 和 B-U585I-IOT02A 開發板

這邊介紹一下 STM32U5 系列的核心以及 B-U585I-IOT02A 這塊開發板究竟有什麼特別的功能。
首先,STM32U585 是基於 ARM Cortex-M33 系列的核心,基於 ARM M 系列最新的 ARM-v8M 指令集。
其中,B-U585I-IOT02A Discovery Kit 包含了以下不同的功能模組:

  • WIFI、BLE
  • Microphones
  • External Memory
  • On-board Debugger

等...(實際上還有其他不少的功能,但我僅先列出接下來很有可能會用到的幾個功能項目)

但不只是以上這些方便的外設硬體,U585晶片還有不少很適合這次 EdgeAI 開發的特點,包含:

  1. DSP 以及 SIMD 的支援,能夠加速大量資料或訊號資料的處理
  2. 支援 Cache Memory,能夠加速推理階段的效率
  3. 低功耗的功能支援
    這些功能會在之後的實作階段一一使用到並介紹~

快速上手 B-U585I-IOT02A 開發板

講了這麼多,今天來快速進入一點點的實作階段,順便示範一下 ST 系列的開發生態系有多方便。
首先,最困難的就是要先準備一塊 ST 的開發板,這邊用的就是之後要實作的 B-U585I-IOT02A,然後,一切就大功告成了。(並沒有)

接著可以去 ST 的官網下載 STM32CubeMX 工具,如果剛接觸的人也可以下載 STM32CubeIDE,他擁有更完整的集合工具,但因為我習慣用自己的方式做,下面還是以 CubeMX 為主。

下載好以後打開 CubeMX,可以選擇不同的晶片或是開發板(如下兩張圖)
CubeMX_1
CubeMX_2
這邊直接選擇了使用 B-U585I-IOT02A 這塊開發板,如果選擇開發板作為模板時,會直接詢問你是否帶入 default setting,這邊也是先直接選擇帶入,完成後可以看到如下圖:
CubeMX_3
其中左邊的選單就會是各種可以直接選擇調整的硬體外設,而右邊就會是各種腳位圖,全部都可以透過 GUI 設定就能快速使用。
這邊就簡單啟用一下 USART1(如下圖,如果 default setting 下應該直接就啟用了)
CubeMX_4
接著到 Project Settiing 選擇檔名以及要輸出的格式,目前 CubeMX 提供輸出以下不同的編譯工具:

  • EWARM
  • MDK-ARM
  • STM32CubeIDE
  • Makefile
  • CMake

我習慣使用 CMake,因此接下來輸出 CMake 格式。
CubeMX_5
此時就能看到目標資料夾底下有輸出的模板檔案:
Output
接著如果我要讓我的開發板透過 UART1 快速輸出 "Hello World!",只要先實現 syscalls.c 裡面的 io_putchar(int ch) 並且在 main()printf 就能快速完成。

// 重新實現標準輸出
int __io_putchar(int ch)
{
    HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, HAL_MAX_DELAY);
    return ch;
}

int main()
{
// 此處省略前面的各種 Hardware init.
printf("Hello World!\r\n");
while(1)
{

}

接著編譯以後燒錄就能夠看到大家都熟悉的 Helloworld 輸出了~

今天簡單分享了一下如何透過 STM32Cube 系列工具快速上手一塊 STM32 開發板,實際上相關的教學網路上很多也比這邊還詳細,而且最重要的一點是幾乎所有不同的晶片or開發板操作起來都大同小異,僅有少數功能比較複雜的會需要多費點心,這就是 STM32 系列強大的開發生態系。

那就先到這邊~各位看倌明天見~


上一篇
Day 3 - 所以說那個 EdgeAI 到底要怎麼做呢?
下一篇
Day 5 - 初見 EdgeAI 工具
系列文
從零開始打造超邊緣AI應用13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言